Arrows

The main arrow commands of version 2 were the ??c![] and ??c![] commands that have been replaced by the || command.

|v2| provides them as well as uses them to define the version 2 commands ??c![], ??c![], ??c![], ??c![], ??c![], and all the derived commands ||, ||, ...; the || commands of the β-releases of v3 is also provided.

Instead of commands like || and || you should use the arrow feature replacements |[rr]| and |@=[ul]|.

The predefined turning solid arrows ||, ..., || are defined as well; these are now easy to do with <turn>s.

2

( arrow @= )

We exploit that || could only be used for straight connections.

( @= =** - >?>*) <;?<*; : Unpack this to what || does for efficiency.

|| is essentially unchanged except we now use the privacy checking commands.

( @#1#2#3#4@x#1#2#3#4@u#1#2#3#4[u]@d#1#2#3#4[d]@l#1#2#3#4[l]@r#1#2#3#4[r]@uu#1#2#3#4[uu]@dd#1#2#3#4[dd]@ll#1#2#3#4[ll]@rr#1#2#3#4[rr]@ur#1#2#3#4[ur]@ul#1#2#3#4[ul]@dr#1#2#3#4[dr]@dl#1#2#3#4[dl]@uul#1#2#3#4[uul]@uur#1#2#3#4[uur]@ull#1#2#3#4[ull]@urr#1#2#3#4[urr]@ddl#1#2#3#4[ddl]@ddr#1#2#3#4[ddr]@dll#1#2#3#4[dll]@drr#1#2#3#4[drr]@uull#1#2#3#4[uull]@uurr#1#2#3#4[uurr]@ddll#1#2#3#4[ddll]@ddrr#1#2#3#4[ddrr]

to line dashed dotted double )

: These could be "hugely" optimised by using the |arrow| feature directly...

Next the predefined bent morphisms of version 2. These required some hacking to work; I hope this doesn't mean that the <path> semantics has changed to much...

( @ @

@@#1#2#3#4#5;[#3] @@@=@ #1<#2@ii=#2@ii=#1 @@>@ii +@+@ii @ [#3] `#4[#3]#5/#4@/ `[#3]

@@#1#2#3#4#5@@@@@=@ @ii=#1 @@>@ii +@+@ii @=@ @ii=#2 @@>@ii +@+@ii #4:(-1,0)>  `"@" "@" `#3"@"#5/#3@/#5/#4@/ `"@"#5/#4@/

@@lld+ @@llu+ @@rrd+ @@rru+ @@ddl+ @@ddr+ @@uul+ @@uur+

@@ld+ @@lu+ @@rd+ @@ru+ @@dl+ @@dr+ @@ul+ @@ur+

)

Finally the version 2 arrow radius default command that actually never worked but some people might hope...

( @@ )

3